package com.bjx.flow.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.bjx.flow.domain.query.FlowDesignQuery;
import com.bjx.flow.domain.vo.FlowDesignDeployVO;
import com.bjx.flow.domain.vo.FlowDesignVO;

/**
 * @desc: 流程设计服务接口
 * @author: liushuai
 * @date: 2022/10/24
 */
public interface IFlowDesignService {


    /**
     * 分页查询流程设计列表
     * @param flowDesignQuery
     * @return: IPage<FlowDesignVO>
     * @Author: liushuai
     * @Date: 2022/10/24
     */
    IPage<FlowDesignVO> listFlowDesignPage(FlowDesignQuery flowDesignQuery);

    /**
     * 新增流程设计
     * @param flowDesignVO
     * @Author: liushuai
     * @Date: 2022/10/24
     */
    void insertFlowDesign(FlowDesignVO flowDesignVO);
    /**
     * 修改流程设计
     * @param flowDesignVO
     * @Author: liushuai
     * @Date: 2022/10/24
     */
    void updateFlowDesign(FlowDesignVO flowDesignVO);
    /**
     * 根据流程设计id删除流程设计
     * @param designId
     * @return: R
     * @Author: liushuai
     * @Date:  2022/10/24
     */
    void deleteFlowDesignByDesignId(Long designId);
    /**
     * 根据流程设计id查询流程设计
     * @param designId
     * @return: R<FlowDesignVO>
     * @Author: liushuai
     * @Date: 2022/10/24
     */
    FlowDesignVO selectFlowDesignByDesignId(Long designId);

    /**
     * 部署流程设计
     * @param flowDesignDeployVO
     * @return: com.bjx.common.core.domain.R
     * @Author: liushuai
     * @Date: 2022/11/1 11:42
     */
    void deployFlowDesign(FlowDesignDeployVO flowDesignDeployVO);
}
